package 剑指专题.位运算;


/*
 * Author：江松
 * Date：2023/4/2 9:44
 *
 不用加减乘除做加法:
 异或表示当前位的加法，与表示当前位的进位
 如果有进位就一直计算，本位的进位应该到一下次才计算，所以要<<1
 */

public class Main1 {

    public int Add(int num1,int num2) {
        int carry=num1;
        int res=num2;

        while(carry!=0){
            //本次计算的值
            int t=res^carry;
            //下次进位
            carry=(res&carry)<<1;
            res=t;
        }
        return res;
    }
}
